<?php
session_cache_limiter("nocache");
//session_start();
require_once('../utilidades/ConexionBD.php');
require_once('MaeServicio.php');

class OrdTrabajoServicio {
    
    //--- Atributos
    private $id=0;
    private $fechaGrab;
    private $usuarioGrab;
    private $activo;
    private $ordTrabajo;
    private $maeServicio;
    private $cantidad;
    private $observaciones;
    
    //--- constructor
    function __construct(){
        $this->ordTrabajo= new OrdTrabajo();
        $this->maeServicio= new MaeServicio();
    }    
    
    //--- Metodos        
    public static function selectById($id){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoServicio\"('selectById',NULL,".$id.",NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        //--- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        while($row = pg_fetch_array($res)) {
            $list=array(
                "id"                   =>$row["@id"],
                "fechaGrab"            =>$row["@fechaGrab"],
                "usuarioGrab"          =>$row["@usuarioGrab"],
                "activo"               =>$row["@activo"],
                "codOrdTrabajo"        =>$row["@codOrdTrabajo"],
                "codMaeServicio"       =>$row["@codMaeServicio"],            
                "cantidad"             =>$row["@cantidad"],            
                "observaciones"        =>$row["@observaciones"],
            );
            return json_encode($list);
        }
        return json_encode("");
    }
    
    public static function selectByIdOrdTrabajoHTMLTableFormat($idOrdTrabajo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoServicio\"('selectByIdOrdTrabajo',NULL,".$idOrdTrabajo.",NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        
        $html="";
        $serv=new MaeServicio();
        while($row = pg_fetch_array($res)) {
            
            $serv->selectThisByCodigo($row["@codMaeServicio"]);
            $html=$html."<tr id='".$row["@id"]."'>";
            $html=$html."<td>".$serv->getNombreMaeServicio()."</td>";        
            $html=$html."<td>".$row["@cantidad"]."</td>";        
            $html=$html."<td>".$row["@observaciones"]."</td>";        
            $html=$html."<td>";        
            $html=$html."&nbsp;<img class='icon-remove-OrdTrabajoServicio' id='icon-remove' src='../recursos/imagenes/remove.png' title='Eliminar el Registro'>";        
            $html=$html."&nbsp;&nbsp;<img class='icon-evento' id='icon-evento' src='../recursos/imagenes/evento.png' title='Anexar Evento'>";        
            $html=$html."&nbsp;&nbsp;<img class='icon-comment' id='icon-comment' src='../recursos/imagenes/comment.png' title='Anexar FeedBack'>";        
            $html=$html."</td>";        
            $html=$html."</tr>";                    
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno el resultado
        return json_encode(array("HTML"=>$html));
    }

    public static function selectByIdOrdTrabajoPDFReport($idOrdTrabajo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoServicio\"('selectByIdOrdTrabajo',NULL,".$idOrdTrabajo.",NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            echo str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()));                
            return null;
        }
        
        $html="";
        $serv=new MaeServicio();
        $i=0;
        while($row = pg_fetch_array($res)) {
            $i++;
            $serv->selectThisByCodigo($row["@codMaeServicio"]);
            $html=$html."<tr>";
            $html=$html.'<td style="font-size:12px;">'.$i.'</td>';        
            $html=$html.'<td style="font-size:12px;">'.$serv->getNombreMaeServicio().'</td>';        
            $html=$html.'<td style="font-size:12px;">'.$row["@observaciones"].'</td>';        
            $html=$html.'<td style="font-size:12px;">'.$row["@cantidad"].'</td>';        
            $html=$html."</tr>";                    
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno el resultado
        return $html;        
    }

    public static function insert($codUsuario,$activo,$codOrdTrabajo,$codMaeServicio,$cantidad,$observaciones){
        
        //-- Valido
        if($cantidad=="" || !is_numeric($cantidad)){
            return json_encode(array("ERROR"=>"La cantidad Indicada NO es valida, verifique."));
        }
        if($cantidad<1){
            return json_encode(array("ERROR"=>"La cantidad debe ser mayor que cero, verifique."));
        }
    
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoServicio\"('insert',NULL,NULL,NULL,'".$codUsuario."','".(($activo) ? 'true' : 'false')."','".$codOrdTrabajo."','".$codMaeServicio."',".$cantidad.",'".$observaciones."');";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();   
        
        //--- debo retornar el id que se genero al hacer la insercion
        while($row = pg_fetch_array($res)) {
            return json_encode(array("id"=>$row["@id"]));
        }
        //-- retorno sino devolvio un id, retorno cero para que no se generen erroes en la vista
        return json_encode(array("id"=>"0"));
    }
    
    public static function update($codUsuario,$id,$activo,$codOrdTrabajo,$codMaeServicio,$cantidad,$observaciones){
        //-- Valido
        if($cantidad=="" || !is_numeric($cantidad)){
            return json_encode(array("ERROR"=>"La cantidad Indicada NO es valida, verifique."));
        }
        if($cantidad<1){
            return json_encode(array("ERROR"=>"La cantidad debe ser mayor que cero, verifique."));
        }
    
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoServicio\"('insert',NULL,".$id.",NULL,'".$codUsuario."','".(($activo) ? 'true' : 'false')."','".$codOrdTrabajo."','".$codMaeServicio."','".$cantidad."','".$observaciones."');";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    
    public static function delete($codUsuario,$id){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncOrdTrabajoServicio\"('delete',NULL,".$id.",NULL,'".$codUsuario."',NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getFechaGrab() {
        return $this->fechaGrab;
    }

    public function setFechaGrab($fechaGrab) {
        $this->fechaGrab = $fechaGrab;
    }

    public function getUsuarioGrab() {
        return $this->usuarioGrab;
    }

    public function setUsuarioGrab($usuarioGrab) {
        $this->usuarioGrab = $usuarioGrab;
    }

    public function getActivo() {
        return $this->activo;
    }

    public function setActivo($activo) {
        $this->activo = $activo;
    }

    public function getOrdTrabajo() {
        return $this->ordTrabajo;
    }

    public function setOrdTrabajo($ordTrabajo) {
        $this->ordTrabajo = $ordTrabajo;
    }

    public function getMaeServicio() {
        return $this->maeServicio;
    }

    public function setMaeServicio($maeServicio) {
        $this->maeServicio = $maeServicio;
    }

    public function getCantidad() {
        return $this->cantidad;
    }

    public function setCantidad($cantidad) {
        $this->cantidad = $cantidad;
    }

    public function getObservaciones() {
        return $this->observaciones;
    }

    public function setObservaciones($observaciones) {
        $this->observaciones = $observaciones;
    }
}

?>
